<?php

/**
 * Description of Definer
 *
 * @author pahhan
 */
abstract class Model_Definer
{
    /**
     *
     * @var Model_DataLoader
     */
    private $loader;

    private $params = array();

    public function __construct(Model_DataLoader $loader, array $params = array())
    {
        $this->loader = $loader;
        $this->params = $params;
    }

    /**
     *
     * @return Model_ParseInfo
     */
    protected function getParseInfo()
    {
        return $this->loader->getParseInfo();
    }

    /**
     * @return Model_Parser
     */
    protected function getParser()
    {
        return $this->loader->getParser();
    }

    public function getParam($name)
    {
        return $this->params[$name];
    }

    abstract public function getId();
    abstract public function getUrl();

}

